// 封装原生的ajax
(function(global){
    function createXHR() {
        let xhr = null;
        if (window.XMLHttpRequest) {
            xhr = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            // IE 6 以及以下版本
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
            alert('您的浏览器不支持ajax请求');
        }
        return xhr;
    }
    /*
    options = {
        method: string,
        data: queryString,
        url: string,
        async: boolean,
        success: function
    }*/
    function ajax(options) {
        var async = false;
        if(options.async === undefined || options.async === true){
            // 未设置，或设置了 true， 则为true(异步)
            async = true;
        }
        var xhr = createXHR();
        xhr.onload = function(){
            if(xhr.status == 200){
                var data = JSON.parse(xhr.responseText);
                // 执行回调函数， 把数据传递给调用者
                options.success(data);
            } else {
                alert("HTTP STATUS: " + xhr.status);
            }
        };
        var method = "get";
        if(options.method && options.method.toLowerCase() === "post"){
            method = "post";
        }
        xhr.open(method, options.url, async);
        if(method === "post"){
            // 使用 post 请求 传递参数, 必须设置请求头, 通常设置如下
            xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            xhr.send(options.data);
        } else {
            xhr.send();
        }
    }
    // 设置到全局中
    global.ajax = ajax;
})(window);